package src

import (
	"fmt"
	"net/http"
	"encoding/json"
)
type LinkParam struct {
	LinkId *string `json:"link_id"`
}

func (lp *LinkParam) fill(body []byte) {
	err := json.Unmarshal(body, lp)
	if err!=nil {
		panic("unmarchalling LinkParam error")
	}
}

func fsspHandler(w http.ResponseWriter, r *http.Request) {
	emp, body := ParseParams(r)
	var linkParam LinkParam
	linkParam.fill(body)
	
	var session *string = nil
	if emp.Auth !=nil {
		session = emp.Auth.Session
	}
	
	var response Response
	if(linkParam.LinkId == nil){
	   response = Response{ session, 0, "", getDeals(2)}
	} else {
	  response = Response{ session, 0, "", getInfo()}
	}
	obj,_ := json.Marshal(response)
	fmt.Fprint(w, string(obj))
}

func getDeals(dealsNumber int) (deals []interface{}){
	params := make(map[string]string)
	params["link_id"] = "fssp_info"
	deals = append(deals,Title{"title","Делопроизводства"})
	deals = append(deals,Appbutton{"appbutton","Справка","link","fines_info",[]map[string]string{params}})	
    deals = append(deals,Text{"text","", "Зарегистрированы исполнительные производства в отношении Навальный А.А. 04 июля 1978 г.р."})
	for i :=0; i<dealsNumber; i++ {
		deal := getDeal()
		for _,dealElement :=range deal {
			deals = append(deals, dealElement)
		}
	}
	return
}

func getDeal() []interface{}{
  	deal := make([]interface{},4)
	deal[0] = Separator{"separator","21.08.2013",""}
	deal[1] = Text{"text","Номер постановления","346636/45/345/345 от 21.08.2013"}
	deal[2] = Text{"text","Предмет исполнения","Выплата штрафа 500 000 руб."}
	deal[3] = Text{"text","Пристав-исполнитель","Блинов С.В."}
	
	return deal
}

func getInfo() [] interface{}{
  info := make([]interface{},2)
  
  info[0] = Title{"title","Справка"}
  info[1] = Text{"text","Делопроизводства","Федеральная служба судебных приставов рекомендует гражданам, обнаруживших себя в банке данных исполнительных производств, обратиться непосредственно в подразделение судебных приставов по указанному в банке данных исполнительных производств адресу, телефону в целях получения информации о принятых и возможных мерах принудительного исполнения, таких как, например, временное ограничение на выезд за пределы Российской Федерации"}
  return info
}